import {Entity} from "../Entity";

export interface IMatcher {
    id:number
    indices:string[]
    matches(entity:Entity)
  }
  export interface ICompoundMatcher extends IMatcher {

    allOfIndices:string[]
    anyOfIndices:string[]
    noneOfIndices:string[]
  }

  export interface INoneOfMatcher extends ICompoundMatcher {}

  export interface IAnyOfMatcher extends ICompoundMatcher {
    noneOf(...args:any[]):INoneOfMatcher
  }

  export interface IAllOfMatcher extends ICompoundMatcher {
    anyOf(...args:any[]):IAnyOfMatcher
    noneOf(...args:any[]):INoneOfMatcher
  }


